The invention relates to the field of Communication systems and more particularly to Direct Sequence Spread Spectrum communication systems.
Direct Sequence Spread Spectrum (DSSS) is a commonly used method for protecting communication and navigation signals against both jamming and unintentional interference, and for providing code division multiple access (CDMA), in which multiple DSSS signals may share the same bandwidth. DSSS signals are widely used to provide protection against narrowband interference and reduce multipath signals within predetermined bandwidths. Spread spectrum systems provide signal security, frequency management, and jamming and noise immunity.
A DSSS signal includes a pseudo-random sequence, that is, a direct sequence, spreading code modulated by a data stream. A CDMA channel bandwidth may be used for transmitting a plurality of superimposed DSSS signals each comprising a respective unique data stream modulating a respective unique spreading code signal. The DSSS modulation requires the generation of a pseudo-random sequence of chips, that is, spreading code bits of zeros and ones, as the spreading code. The chips are communicated as digital symbols. There is a predetermined number of chips per each data bit, with the data bits and code chips combined in synchronism. A remote transmitter code generator generates the spreading code at a chipping rate typically much higher than the data bit rate of the data stream so that the direct sequence spreading code can be modulated by the lower bit rate of the digital data stream so as to spread the bandwidth of the data stream by the chipping rate over CDMA bandwidth. The modulation of the spreading code by the data stream effectively spreads bandwidth of the data stream over the CDMA bandwidth. The symbol or chipping rate of the spreading code must be higher than the data rate of the underlying data stream, for example, ten thousand times faster, for spectrum spreading with high processing gain equal in dB to ten times the log of the ratio of the bandwidth of the chipping rate divided to the bandwidth of data modulated by the chips. The digital chips of the spreading code are added modulo two to the respective underlying data stream. The resulting sequence of chips has a symbol rate equal to the chipping rate of the spreading code. The spreading code is used to spread the data stream bandwidth. Several DSSS signals have respective unique spreading codes that are typically transmitted by superposition within the CDMA bandwidth communicating the plurality of DSSS signals.
The spreading codes are chosen so that the cross correlation between different codes, of respective DSSS signals, is low. Low cross correlation between different spreading codes ensures that the correlation process upon reception will isolate only the DSSS signal and the data bit stream of interest that corresponds to the selected spreading code while rejecting the other DSSS signals that share the CDMA bandwidth. Typically, the spreading codes are linear recursive sequences in which each chip is the modulo two sum of a fixed set of preceding chips. Sequences of this type are usually generated as the output of a linear feed back shift register. The register is tapped at the locations corresponding to the chips that are to be summed and the modulo two sum is fed back into the first stage of the shift register. To begin the process, a vector must be loaded into the shift register. The vector must be a non-zero vector to avoid a constant zero sequence. This vector is referred to as the initial fill word or initial state. For DSSS applications, it is desirable that the sequences be pseudo-random and long. Only certain choices of taps in the shift register produce sequences of desirable cross correlation properties and maximum length. The shift register taps correspond to the non-zero coefficients of a generating polynomial function for the DSSS code sequence. An identical polynomial function may be implemented using the same shift register feedback structure in the receiver to locally generate the same code sequence for despreading with the same initial fill word.
Upon reception, the spreading code is used to despread the CDMA channel to isolate and acquire the particular DSSS signal of interest and to then recover the underlying digital data of the digital data stream. The DSSS signal has a bandwidth larger than the digital bit stream by virtue of modulating the data stream at the higher chipping rate, that is, at the frequency of the spreading code. The spreading code is generated at a higher frequency and is modulated by the digital data bit stream having a lower frequency, and hence the digital data bit stream is spread from a narrow data rate bandwidth across the larger bandwidth defined by the higher chipping rate, that is, the symbol rate.
The receiver of a DSSS signal requires the generation of the same spreading code for correlation detection of the respective particular modulated data stream of interest. The receiver typically locally generates the same spreading code. The data stream is recovered from the DSSS signal by correlating the locally generated replica of the spreading code with the received DSSS signal. The correlation process removes the spreading code by despreading the DSSS signal back into the underlying data stream and increases the strength of the received signal by a factor equal to the processing gain equal to the bandwidth of the DSSS signal divided by the bandwidth of the underlying data stream. The DSSS bandwidth is thereby effectively compressed back into the bandwidth of the underlying data stream.
In practice, a DSSS signal or a plurality of DSSS signals may further modulate a high frequency carrier signal suitable for radio frequency transmission. There are many types of carrier modulation methods used, such as Binary Phase Shifted Keyed, (BPSK), Quadrature Phase Shift Keyed (QPSK) and Gaussian Minimum Shift Keyed (GMSK) carrier modulation methods. Further still, the data bits of the data stream may be formatted before producing a modulated data stream. There are many types of data stream data modulation methods, such as, non-return to zero (NRZ), and Manchester (Bi-Phase-L) data stream modulation methods. Upon reception, the carrier signal is typically demodulated using tracking, Costas loop or squaring loop carrier demodulators, to produce the digital stream. The data of the data stream is then demodulated using data bit synchronizers to detect data bits at the data rate to recover the data bits from the data stream. Carrier modulation and data stream modulation during transmission, and, carrier demodulation and data stream demodulation during reception typically occur in addition to the spreading and despreading of the DSSS signal over the CDMA bandwidth. Carrier and data stream modulation and demodulation are well known to those skilled in the art of spread spectrum systems.
A DSSS signal is received by a DSSS receiver that recovers the data of the spread spectrum data stream. The DSSS receiver must not only generate a replica of the chip sequence of the spreading code for DSSS despreading, but must also time shift the locally generated replica to be aligned in time with the remotely generated spreading code in the received DSSS signal to within a fraction of a chip interval so that the correlation produces a despread signal. The time shift between the locally generated spreading code and the remotely received spreading code in the received DSSS signal is related to a specific number of chips in the spreading code at the chipping rate. Hence, the time shift offset between the received spreading code and the replica despreading code establishes a code phase. Determining this time shift code phase for correlation alignment is necessary to recover the data stream and is known as code phase acquisition, or more simply code acquisition. When the locally generated despreading code is in time alignment, then the despreading correlation will isolate only that DSSS signal of interest having the same spreading code and code phase. Demodulation of the DSSS signal upon reception is accomplished by correlation of the received CDMA signals with a replica of the spreading code used in the transmitter to despread the CDMA signal and hence despread only one of the superimposed DSSS signals, that is, the desired DSSS signal of interest containing the particular spreading code signal to isolate the desired digital data stream. The transmitted spreading code and the identical despreading code enable the spreading, superpositioning, and despreading isolation of many DSSS signals within a CDMA channel bandwidth. It is therefore necessary for the receiver to acquire, that is, determine the code phase between an arrived transmitted spreading code and the receiver locally generated despreading code, in order to isolate by correlation a particular DSSS signal upon reception.
The DSSS receiver is required to determine code phase for DSSS signal acquisition. After the spreading code is remotely generated within the transmitter and the data stream to be communicated is remotely modulated by the spreading sequence by modulo two summing the spreading code with the data stream, the DSSS signal is then typically transmitted asynchronously to the DSSS receiver. The DSSS receiver locally generates the spreading code as an identical despreading code to demodulate by correlation the DSSS signal. However, and importantly, the arrival time of the remotely generated spreading code will not be in code phase synchronization with locally generated despreading code, and as such will prevent correlation despreading of the DSSS signal. Code phase determination, is in effect, a determination of the amount of time displacement between the arrival of the remotely generated spreading code and the locally generated despreading code, both typically initiating the code sequence at differing arbitrary points in time creating an inherent time differential. By delaying the locally generated spreading code by that time differential, that is, by the code phase amount of time, the received spreading code and the despreading code can be aligned in time for correlation demodulation of the DSSS signal to recover the desired data stream.
Hence, the code phase time shift inherently results from generating the spreading code initiated at one point in time in the transmitter in relation to a receiver using the same despreading code initiated at another point in time. The unsynchronized initiations of the spreading and despreading code, in addition to variable transmission delays, create the time differential, that is, the code phase. The despreading of the DSSS signal will only occur when the reception of the remotely transmitted spreading code is aligned in time in the receiver to the locally generated receiver despreading code, after the code phase has been determined for DSSS acquisition. After code phase acquisition, the output of the correlation function upon reception, ideally, is a constant that, after integration of the correlated signal, can establish a threshold level to determine, that is, detect the presence of the desired DSSS signal, upon which, data stream demodulation is used to recover the actual data bits of the data stream. After code acquisition, code tracking continuously monitors the integration output to keep the system in code phase lock. It is desirable that the time required for code acquisition be small as possible for rapid acquisition of the data bits of the data stream for improved performance.
The code phase is effectively set by the initiation of the contents of the receiver shift register feedback structure at an arbitrary point in time relative to the reception of the transmitted spreading code. The initial state, that is, the contents of the M-stage shift register, is described by a binary fill word, which must be chosen to be a non-zero binary vector of length M chips. An exemplar M stage register is used and may be of any suitable arbitrary length M. The feedback taps are typically selected to ensure that the output direct sequence code, that is, the spreading code, is a maximum-length linear sequence, that is, an m-sequence, having a length m equal to 2Mxe2x88x921, although other suitable lengths and spreading codes may be used as long as the sequence has desirable auto-correlation and cross-correlation properties to isolate the DSSS signal. The conventional DSSS method is not restricted to the use of m-sequence spreading codes.
Hence, one fundamental problem with DSSS systems is the time required for code phase determination, that is, code acquisition, based upon the time uncertainly associated with the time of arrival of the transmitted spreading code. The time clock of the transmitters and receivers are typically not in time synchronism, and the transmission delays between the transmitter and receiver may vary over time. Hence, DSSS systems have an inherent time delay associated with signal transmissions, and as such, lack inherent time synchronization between the reception of the transmitted spreading code and the receiver locally generated despreading code. The lack of time synchronization creates a code phase between the received spreading code and the locally generated despreading code. In order to acquire the data stream, the code phase is firstly determined to acquire time synchronization, that is, chip synchronization, between the transmitted spreading code of the transmitted signal and receiver despreading code of the locally generated despreading code in the receiver. Upon code phase determination, the transmitted code of the received spread spectrum signal and the locally generated spreading code are matched in time to despread the DSSS signal by correlation to isolate the data stream of interest to then recover the data bits from the DSSS signal. Conventional DSSS systems have relied upon various methods to solve this fundamental code acquisition problem, that is, the problem of rapidly determining code phase. The code acquisition ensures that the receiver shift register generates the spreading code that exactly matches the spreading code generated in the transmitter, by determining the code phase to compensate for channel delays and a lack of synchronization between the transmitter and receiver. Rapid acquisition of the digital signal is desirable and facilitates improved use of the available bandwidth. Thus, rapid acquisition methods are desirable in DSSS systems. Prior solutions to the code acquisition problem include the load and go method, the sliding correlator method, the time reference method, the collateral short code method, and related variants.
The load and go method for rapid code acquisition has been used to estimate a code phase by estimating a fill word of the plurality of fill words. A plurality of differing fill words can be used to generate the spreading code sequence at respective offset times. The method is an estimate in the presence of corrupted received code chips communicated across a noisy channel providing a low signal to noise ratio. A variety of techniques have been used to derive the fill word estimates. The load and go method can achieve rapid code acquisition but only if the signal to noise ratio is high. The starting point in time or code phase is not known, and hypothesis testing over many sequence code phases may be needed to determine code phase. A local replica of the spreading code is generated during reception using a shift register with the same feedback taps and with one of the plurality of fill words as initial register contents that may be the same initial contents that were used in the transmitter. The receiver assumes that the last M chip set is an error free fill word and loads these M chips into the receiver feedback shift register. The receiver then compares the locally generated chip sequence to subsequently received chips to check the correctness of the assumed fill word. This search method determines the code phase between the transmitted spreading code and the identical locally generated despreading code during the code acquisition process. If the received signal has many chip errors, then the xe2x80x9cload and goxe2x80x9d process will have to be repeated many times and may not work at all in high noise situations.
The sliding correlator method introduces successive time differentials during the generation of the locally generated despreading code. The local despreading code chips are successively offset by sequential chip shifts of the locally generated despreading code relative to the received spreading code. The locally generated despreading code is successively shifted by typically one half chip time creating successively larger time offsets of the code phase until time synchronization occurs between the received spreading code and the locally generated despreading code, where the number of shifted chips determines the code phase, that is, the accumulative time shift of the received chips. Once the code phase is determined by correlation integration detection, the received signal is despread to demodulate DSSS signal to then produce the digital data stream during signal tracking. One disadvantage of this method is the long acquisition time associated with the successive sequential sliding chip shifts of the sliding correlator. The sliding correlator method is slow when searching in a large epoch time uncertainty situation especially over long code sequences that can last weeks in duration to complete one full sequence. The sliding correlator method can be very slow and typically and disadvantageously also adds significant complexity to the receiver while introducing long delays in acquiring the code phase.
The time reference method for solving the rapid code acquisition problem uses a precise time reference at the receiver to estimate code epoch time. This method may be adapted to use an auxiliary transmitter and receiver to transfer a precise time reference from the transmitter to the receiver. The time reference method disadvantageously requires the use of precise internal and external time references and adds further complexity and limitations to the code acquisition process.
The collateral short code method is yet another method of rapid acquisition which firstly and rapidly determines code phase of a short spreading code that is time referenced to the subject long spreading code for determining the code phase of the long code. The short spreading code is used in conjunction with a time synchronized long spreading code. The collateral short code method disadvantageously acquires a DSSS signal using the short code that is in precise time synchronization to a longer code, such that, the phase code determination of a short code aids in directly determining the code phase of long spreading code modulated by the desired data stream. This method disadvantageously requires the use of dual spreading code systems having predetermined code phase relations between the short and long spreading codes. Such a dual code system can significantly increase both receiver complexity and cost.
Another fundamental problem associated with all communication systems, including DSSS systems, is the noisy communication channels through which the signals are transmitted, communicated, and received. Many communication channels are modeled as additive white Gaussian noise channels. The communication channel may also be subjected to intentional and unintentional interference and multipath distortions. These noisy channels create errors typically modeled as random data bit and code chip errors in both the data stream and chip code sequences, respectively. Many of the code symbols of the spreading code sequence are received in error due to noise. This causes errors in many of the data bits of the digital data stream. Real world code acquisition processes disadvantageously suffer from data and chip error uncertainties, complicating the rapid acquisition process.
Digital communication systems have used convolutional error correction techniques to correct data transmission errors. These convolution techniques typically include a transmitter binary convolution process transmitting redundant code bits convolved with the data bits. An inverse convolutional decoder is used to retrieve the data from the convolved encoded signal through a convolutional decoder using trellis, tree, or sequential search error correcting techniques. Typically, the output of the inverse convolution decoder is subject to transmission errors in the convolved digital code and data bits. The initial state of the decoder, as viewed from any arbitrary point along a data stream, is generally not known. By accumulating relative probabilities of state transitions, a probable state to state transition path can be calculated to estimate the current state, and to then compute data that should have been received to enable the correction of data errors. While convolutional coding methods have been used for data error correction, these convolutional error correcting techniques have disadvantageously not been coupled together with DSSS systems to estimate initial states for code phase determination for rapid acquisitions of a particular DSSS signal. These and other disadvantages are solved or reduced using the invention.
An object of the invention is to provide a method for rapid acquisition of Direct Sequence Spread Spectrum (DSSS) signals comprising spreading codes of chips.
An object of the invention is to provide a method for rapid acquisition of DSSS signals comprising spreading codes of chips modulating a data stream providing a sequence of symbols.
Another object of the invention is to use a reduced state structure for estimating current states of received chip values for resolving chip uncertainties.
Another object of the invention is to simplify DSSS receivers by providing a means of demodulating data bits without generating a local time synchronized version of the spreading code.
Another object of the invention is to apply convolutional decoding principles to estimate the code phase of a DSSS signal.
Another object of the invention is to apply convolutional decoding to estimate epoch time of a sequence of code chips.
Another object of the invention is to apply convolutional decoding to estimate code phase of a sequence of symbols.
Another object of the invention is to apply convolutional decoding to estimate epoch time of a sequence of code chips.
The present invention is applied to any linear code sequence in which each chip is the modulo two sum of a fixed number of preceding chip. The invention is preferably a rapid acquisition method of rapid acquisition of DSSS signals comprising spreading code chips. This rapid acquisition method is herein referred to as a convolutional despreading method. The use of the method enables rapid demodulation of a data stream of data bits. The transmitter and receiver structure can be adapted to function in both a noisy environment and in the presence of other spreading codes as in a CDMA environment. The transmitter includes a spreading code generator having a feedback shift register having a predetermined number of M stages and taps defining a polynomial equation for generating a particular direct sequence code of code chips which modulate the data stream. The received DSSS signal is firstly received, digitized and fed into a delay register having a predetermined number of stages and tapped outputs. The delay register is preferably an M+1 stage tapped serial bit shift register. The delay register provides outputs as branchwords for implementation of a search algorithm to perfect the convolutional despreading method. The delay register is further defined as a state machine having a reduced state map of less than 2M states. The delay shift register, viewed as a finite state machine, then is modeled to transit only among the reduced number of states. The polynomial equation provides a computational relationship between the states. A metric state processor receives the tapped outputs from the delay shift register, and calculates a state transition metric to provide an estimate of the initial state of the delay shift register, to estimate the code phase and initial states of the reduced state structure. The reduced number of states leads to rapid metric calculation and initial state estimates. The estimate of the initial state defines the actual code phase of the chip sequence of symbols that have been received. The state processor can further provide demodulated data recovered from the received symbol sequence, and can further provide a code epoch time estimate.
In the preferred use of the method, a transmitter generates a DSSS baseband signal comprising a data stream of digital data bits modulated by a spreading code of a sequence of code chips initiated at an arbitrary point in time. Typically, such a transmitter will include a tapped feedback shift register generating the spreading code which modulo two sums with the data bits to spread the data stream over a predetermined bandwidth. An improved DSSS receiver may include channel filtering, but preferably includes an analog to digital means for converting the transmitted DSSS baseband signal into digital type signals that are then fed into the delay register having state outputs fed into the metric state processor that then provides the initial estimates of code phase. The code phase can be used to provide a receiver conventional M stage feedback shift register with initial fill words for regeneration of the despreading code for conventional correlation to acquire the data stream for data recovery. The improved receiver can also operate continuously without the use of a conventional correlation receiver.
The convolutional despreading method reformulates the code acquisition problem into a convolutional decoding problem where the receiver includes a finite state machine having a reduced state set, and a metric state processor operating on the reduced set of states and transitions between those states to provide the estimate of initial code phase. The state processor can implement various convolution searching techniques based upon best path metrics computations, such as, the preferred Virterbi trellis or Fano tree search algorithms that are sequential search algorithms searching for the most likely path through a corresponding reduced state transition structure.
For a DSSS system, rapid estimation of the initial state, and therefore the code phase, reduces the time required to acquire the DSSS signal and achieve successful demodulation of the underlying data while leading to reduced complexity of DSSS receivers. For a hopping system, an analog to digital filter provides successive branchwords that correspond to the respective carrier frequencies, the rapid estimation method rapidly determines the hopping code phase. These and other advantages will become more apparent from the following detailed description of the preferred embodiment.